# 作者： 李泉志
# 2025年01月06日21时28分秒
# 2947029073@qq.com
def operator_demo():
    print([1, 2] + [3, 4])  # 合并 字符串、列表、元组
    print(['Hi'] * 3)  # 重复 字符串、列表、元组
    print(2 in [1, 2, 3])  # 元素是否存在 字符串、列表、元组、字典，集合
    print(2 not in [1, 2, 3])  # 元素是否不存在 字符串、列表、元组、字典，集合
    print((1, 2, 3) < (2, 2, 3))  # 比较:第一个大就大 字符串、列表、元组


"""
成员运算符
成员运算符用于测试序列中是否包含指定的成员
    • in 在对字典操作时，判断的是字典的键
    • in 和 not in 被称为成员运算符
"""


def compare_demo():
    # 可变数据类型地址不一样
    list1 = [1, 2, 3]
    list2 = [1, 2, 3]
    print(list1 == list2)
    print(id(list1) == id(list2))  # 等价用list1 is list2
    print(list1 is list2)  # 等价用id(list1) == id(list2)

    # 不可变数据类型，相同则地址一样
    tuple1 = (1, 2, 3)
    tuple2 = (1, 2, 3)
    print(tuple1 == tuple2)
    print(id(tuple1) == id(tuple2))
    print(tuple1 is tuple2)

    dict1 = {'name': 'Alice', 'age': 20}
    dict2 = {'name': 'Alice', 'age': 20}
    print(dict1 == dict2)
    print(id(dict1) == id(dict2))
    print(dict1 is dict2)


if __name__ == '__main__':
    # operator_demo()
    compare_demo()
